package com.dshore.messagecenter.service.topicQueue;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import com.dshore.messagecenter.model.basedata.MdApp;
import com.dshore.messagecenter.model.system.ResponseResult;
import com.dshore.messagecenter.model.system.SysDict;
import com.dshore.messagecenter.model.topicqueue.MdTopic;
import com.dshore.messagecenter.service.CommonService;
import com.dshore.messagecenter.util.Page;

public interface TopicQueueService extends CommonService<MdTopic>{

	List<Map<String, Object>> getAccessType();

	ResponseResult<Void> deleteByIds(String[] ids);

	int releaseOrRecall(String id, int status);

	MdApp queryAppByAccess(String topicQueueNo);

	List<MdApp> queryAppsBySend(String topicQueueNo);
	
	List<MdTopic> queryAllTopicQueue();

	Page<Map<String, Object>> queryListAll(MdTopic queue, String checkAppId);

	int queueWidthdraw(String topicQueueNo,String vhostName, String id, int status);

	int queueRelease(String topicQueueNo, String vhostName, String id, int status);

	ResponseResult<Void> saveApps(Map<String, Object> map, String topicQueueName, HttpSession session, 
			String key, String status);
	
	List<SysDict> selectBySendType();
	
	Object saveService(Map<String, Object> map);

//	int ServiceWidthdraw(String topicQueueNo, String id, int status);

//	int ServiceRelease(String topicQueueNo, String id, int status);
	
	/**
	 * 获取源应用信息
	 * @return
	 */
	List<List<String>> getSourceAppName();
	
	List<List<String>> getTargetAppName();
	/** 新增消息队列接入时校验姓名是否重复 */
	boolean checkAppName(String topicQueueName, String id);
}
